Determining presence status using motion detection

ABSTRACT

Determining a presence status associated with a user of a mobile communications device allows for presence information to be provided to network elements and device clients. Presence status information includes information that indicates whether a user is likely available via the mobile communications device. Acceleration data associated with the mobile device is collected and analyzed to determine whether a human profile is indicated. Presence status information is generated based at least on whether the human profile is indicated.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.13/186,594, filed Jul. 20, 2011, entitled “Determining Presence StatusUsing Motion Detection,” which is a continuation of U.S. applicationSer. No. 12/266,867, filed Nov. 7, 2008, entitled “Determining PresenceStatus Using Heat And Motion Detection,” granted U.S. Pat. No.8,103,304, the entirety of which is incorporated by reference herein.

SUMMARY

Embodiments of the invention are defined by the claims below, not thissummary. A high-level overview of embodiments of the invention isprovided here for that reason, to provide an overview of the disclosure.

In a first illustrative aspect, a presence server provides presenceinformation associated with a user of a mobile communications device.The presence server includes one or more processing devices andcomputer-readable media. The media have embodied thereoncomputer-useable instructions for causing the presence server to receiveheat information associated with the mobile device, receive motioninformation associated with the mobile device, and analyze the heat andmotion information to determine whether a human profile is indicated.The human profile includes a characterization of heat and motioninformation that indicates whether the user is available via the mobiledevice. The presence server also stores presence status informationbased on whether a human profile is indicated.

In another illustrative aspect, computer-readable media havecomputer-executable instructions embodied thereon for performing amethod of providing presence information associated with a user of amobile communications device. The method includes receiving, at anetwork element, a first temperature associated with a first locationnear an outside surface of the mobile communications device. A secondtemperature associated with a second location near an outside surface ofthe mobile communications device is received at the network element. Adifference is calculated between the first temperature and the secondtemperature. The difference is compared to a predetermined range thatcorresponds to a human profile, where the human profile comprises arange of temperature differences that suggest that a human being is inclose proximity to the mobile communications device. When the differenceis within the predetermined range, presence status information is storedthat indicates that the user is available via the mobile communicationsdevice.

In yet another illustrative aspect, a presence server provides presenceinformation associated with a user of a mobile communications device.The presence server is configured to receive acceleration dataassociated with the mobile device and analyze the acceleration data todetermine whether a human profile is indicated. The human profilecomprises a characterization of motion information that indicates thatthe user is available via the mobile device. The presence server isfurther configured to fit a model to at least a portion of theacceleration data, determine whether the model includes a baselinecomponent, and determine whether the first set of accelerations includesa deviation from the baseline component. The presence server also storespresence status information that is based at least on whether the humanprofile is indicated.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

Illustrative embodiments of the present invention are described indetail below with reference to the attached drawing figures, which areincorporated by reference herein and wherein:

FIG. 1 is a block diagram showing an exemplary mobile communicationsdevice in accordance with embodiments of the present invention;

FIG. 2 is a block diagram showing an exemplary network environmentsuitable for implementing embodiments of the present invention;

FIG. 3 is a block diagram illustrating an exemplary mobile presencesystem suitable for implementation of embodiments of the presentinvention

FIGS. 4-5 depict side views of exemplary mobile communications deviceshaving internal heat and motion sensors in accordance with embodimentsof the present invention;

FIGS. 6-7 depict illustrative methods of determining presenceinformation using heat data captured by sensors positioned within amobile communications device;

FIG. 8 depicts an illustrative method of determining presenceinformation using motion data captured by a sensor positioned within amobile communications device; and

FIG. 9 depicts an illustrative method of determining presenceinformation using heat and motion data captured by sensors positionedwithin a mobile communications device.

DETAILED DESCRIPTION

Embodiments of the present invention provide systems and methods forproviding presence information associated with a user of a mobilecommunications device. By determining a presence status based on ananalysis of heat and motion data captured by sensors in the mobiledevice, embodiments of the present invention allow users of mobilecommunications devices to obtain improved presence informationassociated with their contacts and allow for more accurate presenceinformation to be provided to network elements and device clients.

Throughout the description of the present invention, several acronymsand shorthand notations are used to aid the understanding of certainconcepts pertaining to the associated system and services. Theseacronyms and shorthand notations are intended to help provide an easymethodology of communicating the ideas expressed herein and are notmeant to limit the scope of the present invention.

The invention may be described in the general context of computer codeor machine-useable instructions, including computer-executableinstructions such as program modules, being executed by a computer orother machine, such as a personal data assistant or other handhelddevice. Generally, program modules including routines, programs,objects, components, data structures, etc., refer to code that performparticular tasks or implement particular abstract data types. Theinvention may be practiced in a variety of system configurations,including hand-held devices, consumer electronics, general-purposecomputers, more specialty computing devices, and the like. The inventionmay also be practiced in distributed computing environments where tasksare performed by remote-processing devices that are linked through acommunications network.

Computer-readable media include both volatile and nonvolatile media,removable and nonremovable media, and contemplates media readable by adatabase, a switch, and various other network devices. By way ofexample, and not limitation, computer-readable media comprise mediaimplemented in any method or technology for storing information.Examples of stored information include computer-useable instructions,data structures, program modules, and other data representations. Mediaexamples include, but are not limited to information-delivery media,RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM,digital versatile discs (DVD), holographic media or other optical discstorage, magnetic cassettes, magnetic tape, magnetic disk storage, andother magnetic storage devices. These technologies can store datamomentarily, temporarily, or permanently.

An exemplary operating environment in which various aspects of thepresent invention may be implemented is described below in order toprovide a general context for various aspects of the present invention.Referring initially to FIG. 1 in particular, an exemplary operatingenvironment for implementing embodiments of the present invention isshown and designated generally as mobile communications device 100.Mobile device 100 is but one example of a suitable computing environmentand is not intended to suggest any limitation as to the scope of use orfunctionality of the invention. Neither should the mobile device 100 beinterpreted as having any dependency or requirement relating to any oneor combination of components illustrated.

As shown, a bus 110 couples, directly or indirectly, the followingillustrative components: a storage component 112, a processor 116, adisplay 118, a radio 120, input/output ports 122, a presence client 124,and a power supply 126.

Storage components 112 may take the form of the aforementionedcomputer-readable media. As with all of the illustrative components ofFIG. 1, although we refer to them sometimes in the singular, that shouldnot be read so as to imply that we mean only a single of each of thecomponents is contemplated within the scope of our invention. To thecontrary, by way of example, storage component or components 112 mayactually be composed of constituent storage components located withinmobile device 100.

Processors 116 facilitate a flow of information among all or a portionof the components shown in FIG. 1 as well as computer-usableinstructions that help facilitate various aspects of the presentinvention. For example, in one embodiment, an operating system of mobiledevice 100 also helps coordinate various functional aspects of thepresent invention. Processors 116 operate in connection with runningsuch an operating system.

Radios 120 facilitate the communication of wireless communicationsignals to and from mobile device 100. Illustrative protocols that canbe utilized in connection with an embodiment of the present inventioninclude CDMA, TDMA, GSM, GPRS, EV-DO, WiFi, WiMax, and the like. Theradios facilitate wireless communications between the device and anational or even global telecommunications network.

Input/output ports 122 provide a way for mobile device 100 to interactwith other peripheral components. Illustrative input/output portsinclude an ear-piece or headphone jack, a USB port, an infrared port,and the like. Different input/output ports could be provided as isneeded to facilitate communication of other peripheral components.

Presence client 124 facilitates communicating presence informationassociated with a user of mobile device 100 to other clients withinmobile device 100 as well as to any number of various nodes on a mobilenetwork. In some embodiments, the presence information can also becommunicated directly to other mobile communications devices orcomputing devices. In an embodiment, presence client 124 interacts witha presence server located on a network such that presence informationcan be distributed to interested users over the network.

Power supply 126 may also take on a variety of forms ranging from abattery to a charging mechanism to other forms of power sources thatserve to provide power to mobile device 100.

The selected components of mobile device 100 are meant to beillustrative in nature, and the various lower-level details of thecomponents are not elaborated on so as to not obscure the presentinvention. Clearly, some of the components may be absent in someembodiments of the present invention, and additional components notshown may also be part of mobile device 100. Attempting to show all ofthe various components of mobile device 100 would obscure certain novelaspects, and we will refrain from such elaboration at least for the sakeof brevity.

Turning now to FIG. 2, a block diagram is shown that illustrates anexemplary network environment 200 in accordance with an embodiment ofthe present invention. Network environment 200 includes mobile devices210, and 214, mobile networks 216 and 218, and network 220. Asillustrated in FIG. 2, mobile networks 216 and 218 include presenceservers 222 and 226. Mobile network 216 also can, as illustrated,include an information source 224, which can be any type of server orother network node that can provide data associated with presenceinformation to presence server 222. Network environment 200 is merely anexample of one suitable network environment and is not intended tosuggest any limitation as to the scope of use or functionality of thepresent invention. Neither should network environment 200 be interpretedas having any dependency or requirement related to any single componentor combination of components illustrated therein.

It will be understood by those skilled in the art that each of theseelements of the network environment 200 is also scalable. That is, forexample, network environment 200 can include a large number of mobiledevices. Additionally, for example, presence server 222 may actuallyinclude a number of presence servers, operating in parallel with a loadbalancer such that large amounts of traffic may be managed. Of course,the same is true with any of the other elements of the exemplary networkenvironment 200 such as, for example, information source 224, presenceserver 226, and any other network element or server that may be employedin an embodiment of the present invention. Any or all of these serversmay be implemented using any number of server modules, devices,machines, and the like.

Mobile networks 216 and 218 can be any of the various types of mobilenetworks known in the art and can support, for example, any of theprotocols mentioned above with respect to FIG. 1. Network 220 can be alocal area network (LAN), a mobile network (MN), or a wide area network(WAN) such as the Internet. Although lines of communication are shown inFIG. 2, these connections are intended to be illustrative only andshould not be read to limit the configuration of connections in variousimplementations of embodiments of the present invention.

Mobile devices 210 and 214 are mobile communications devices such as,for example, the mobile communications device 100 described above withreference to FIG. 1. Mobile devices 210 and 214 are capable ofcommunicating with one another, either directly or by way of anycombination of the various networks 216, 218, and 220. Mobile device 210is capable of determining presence information associated with its user212. In some embodiments, mobile device 210 includes a sensor or sensorsadapted to capture heat and motion data associated with mobile device210. According to embodiments of the present invention, mobile device210 also includes components such as program modules that analyzecollected data to determine presence information and in otherembodiments collected data is analyzed externally to the mobile device210 such as, for example, by a presence server 222. Mobile device 210can also communicate presence information across mobile network 216.

As illustrated in FIG. 2, mobile network 216 includes a presence server222 and an information source 224, which can be a server, computingdevice, or other network component capable of providing presenceinformation to presence server 222. Presence server 222 and informationsource 224 can be implemented on any number of types of computingdevices. In an embodiment, presence server 222 and information source224 are each implemented on a separate machine. In other embodiments,presence server 222 and information source 224 are implemented on asingle machine or a distributed processing system using severalinterconnected machines. In a further embodiment, combinations of thecomponents 222 and 224 can be implemented on any number of machines andaccording to any number of various combinations.

The components of mobile network 216 are also scalable. That is, inembodiments of the present invention, there can be varying numbers ofcomponents. For instance, in one embodiment, mobile network 216 includesone of each of presence server 222 and information source 224. Inanother embodiment, mobile network 216 can include many of each of thecomponents 222 and 224. In a further embodiment, presence server 222 andinformation source 224 can be maintained outside of mobile network 216.Any number of configurations that operate to provide communications withpresence capabilities as described below can be suitable forimplementing embodiments of the present invention.

Presence server 222 provides presence services throughout mobile network216 such as, for example, maintaining presence status information formobile device 210, receiving presence status updates from mobile device210 or from other network components such as information source 224,providing presence status information to mobile device 210 and otherdevices or networks 218, 220, registering presence clients such aspresence client 124 discussed above with respect to FIG. 1, and thelike. Those having ordinary skill in the art will understand that thereare many different possible configurations for presence server 222, andall of these are considered to be within the ambit of the presentinvention.

As indicated above, presence server 222 maintains presence statusinformation associated with mobile device 210. Presence statusinformation, as used herein, includes information that indicates whethera user is likely available via the user's mobile device 210. It shouldbe appreciated that presence status information will usually indicatethe possibility of user availability rather than the actuality of useravailability due to the inability to determine user availability withcomplete accuracy without actually observing the user to be available.To that end, however, novel aspects of the present invention offer animprovement in the accuracy of that determination over the prior art.

Presence status information can be represented in a variety of manners,using any number of formats. In one embodiment, for example, presencestatus information consists of an identifier that is associated with adescription of user availability via the user's mobile device 210.Typical examples of descriptions of user availability includesingle-word descriptions such as “online,” “home,” “work,” “away,”“busy,” and the like. Additionally, presence status can be determinedusing embodiments of the present invention for any of the types ofcommunication of which mobile device 210 is capable. Examples ofcommunication types for which presence status can be determined includevoice, text, email, SMS, and the like. Presence server 222 storespresence status information in a storage module 223, which can be adatabase, a virtual storage model, a file system, or the like. In anembodiment, presence server 222 maintains a user or device profileassociated with each registered user and/or mobile device 210. The useror device profile includes an identifier that corresponds to the user ordevice, corresponding account information, corresponding presence statusinformation, and the like.

According to an embodiment of the present invention, presence server 222determines the presence status associated with a user or device 210based on presence information. In another embodiment, presence status isdetermined by mobile device 210 and communicated, as presence statusinformation, to presence server 222. Presence information can beprovided by any number of sources such as, for example, mobile device210, information source 224, user 212, or other network components notillustrated in FIG. 2. In an embodiment, presence information includesraw data such as, for example, temperature differential data, motiondata, data indicating whether mobile device 210 is registered, datareflecting recent use of mobile device 210, and the like.

In another embodiment, presence information includes processed data.Processed data is data that results from an analysis of raw data orother processed data. For example, processed data can include anaggregation of data, a conclusion derived from analyzing data, amathematical model generated from data, and the like. In an embodiment,processed data includes information that describes whether a humanprofile is indicated by data. Data indicates a human profile when thedata, (e.g., a characterization of heat and motion information) suggeststhat the user 212 is available via the mobile device 210. To determinewhether data suggests that the user 212 is available via the mobiledevice 210, data is subjected to rules, heuristics, filters, patternmatching algorithms, and the like.

In one embodiment, presence server 222 maintains a presence statuscorresponding to the user 212 or mobile device 210 until presence server222 receives presence information indicating that the presence statushas (or should be) changed. As shown in FIG. 2, presence server 222 canstore presence status information in a storage module 223. In anotherembodiment, presence server 222 maintains presence status informationtemporarily and replaces the presence status information periodically.Presence server 222 can periodically ping mobile device 210 and/orinformation source 224 to determine if updated presence informationassociated with mobile device 210 is available. In some embodiments,mobile device 210 and/or information source 224 push presenceinformation to presence server 222. In turn, presence server 222 isadapted to provide presence status information associated with mobiledevice 210 to other devices, networks, network components and the like.For instance, in an embodiment, presence server 222 provides presenceinformation associated with mobile device 210 or user 212 to mobiledevice 214 via network 220 and mobile network 218.

As illustrated in FIG. 2, mobile network 218 also includes a presenceserver 226. Presence server 226 can perform similar services withrespect to mobile device 214 and mobile network 218 that presence server222 performs with respect to mobile device 210 and mobile network 216.Additionally, in embodiments, presence server 226 can receive presencestatus information associated with mobile device 210 and provide thatpresence status information to mobile device 214. Likewise, presenceserver 222 can receive presence status information associated withmobile device 214 from presence server 226 and provide that presencestatus information to mobile device 210. In other embodiments, presenceservers 222 and 226 broadcast presence status information.

Turning now to FIG. 3, a block diagram is shown that illustrates anexemplary mobile presence system 300 suitable for implementation ofembodiments of the present invention. Mobile presence system 300includes a mobile device 310 and a presence server 312. As describedabove with respect to FIG. 1, presence server 312 can be located on anetwork such as a mobile network, an enterprise network, a LAN, a WAN,or other type of network. Mobile device 310 can communicate withpresence server 312 in various ways such as, for example, directly, orvia a network or networks. As described above with respect to FIG. 2,mobile device 310 provides presence information, presence statusinformation, and/or other data to presence server 312, which storespresence status information in storage module 315. Additionally, mobiledevice 310 can receive presence status information associated with othermobile devices from presence server 312.

Mobile device 310 is merely an example of one suitable mobile device andis not intended to suggest any limitation as to the scope of use orfunctionality of the present invention. Neither should mobile device 310be interpreted as having any dependency or requirement related to anysingle component or combination of components illustrated therein. Forexample, in some embodiments, heat analysis component 318 and motionanalysis component 324 are integrated with presence analysis component326, where heat analysis component 318 and motion analysis component 324are program modules that can be executed by presence component 326. Inother embodiments, heat analysis component 318 and motion analysiscomponent 324 may be absent entirely, leaving presence analysiscomponent 326 to perform all of the required analysis. In furtherembodiments, mobile device 310 includes additional sensors or componentsfor generating, collecting, or analyzing presence information.

As illustrated in FIG. 3, mobile device 310 includes heat detectors 314and 316, a heat analysis component 318, accelerometer 322, motionanalysis component 324, presence analysis component 326, and variousclients 328, 330, one of which is a presence client 328. Heat detectors314 and 316 provide heat information to heat analysis component 318,which analyzes the heat information. Accelerometer 322 provides motioninformation to motion analysis component 324. As discussed in greaterdetail below, heat analysis component 318 and motion analysis component324 can provide varying degrees and types of analysis, depending on theassignment of processing functions to the presence analysis component326 and the presence server 312. Presence analysis component 326references heat information and motion information. Using thatinformation, presence analysis component 326 determines whether a humanprofile is indicated.

Heat detectors 314 and 316 can be any kind of sensor capable ofobtaining a measurement of temperature at a location near the surface ofthe mobile device 310. For instance, heat detectors 314 and 316 caninclude thermometers, thermistors, resistance temperature detectors, andthe like. In various embodiments, there may be more than two heatdetectors 314 and 316. For instance, in an embodiment, mobile device 310can have a series of heat detectors located at various points near thesurface of mobile device 310. It should be noted that, as used herein,the phrase “near the surface” can mean at or on the surface as well asbelow the surface, as some detectors may be incorporated into the coverlayer of the mobile device. Because the purpose of the heat detectors314 and 316 is to collect heat information that can be used to determinewhether a human profile is indicated (i.e., whether a human is likelyavailable via the mobile device 310), the heat detectors 314 and 316 aregenerally configured to obtain temperature data corresponding to a setof predictable situations that would result in a determination that ahuman profile is indicated.

A user of mobile device 310 will likely be available via mobile device310 if the user is in close proximity to mobile device 310, and heatdetectors 314 and 316 should be configured such that they can collectinformation that would indicate that situation. For example, the usermay have mobile device 310 in a pocket, in which case one side of mobiledevice 310 would be closer to the user's body than the other side.Similarly, if a user is making a phone call, one side of mobile device310 often will be pressed against the side of the user's head, while aportion of the opposite side of mobile device 310 may be cupped in theuser's hand. As another example, a user may be interacting with mobiledevice 310 using a touch-screen or keypad, in which case, one side ofmobile device 310 generally will be cupped in the user's hand, while theopposite side is facing up toward the user's face. From the foregoingexemplary situations, it is evident that when a user is interacting withmobile device 310 or when a user has mobile device 310 “on them,” oneside of mobile device 310 generally will be exposed to a greater amountof heat than the opposite side. Further, those of ordinary skill in theart will recognize that a majority of mobile devices are designed havingtwo, parallel opposed flat surfaces or faces and four narrower sidesoriented roughly perpendicular to the flat faces.

Turning briefly to FIGS. 4 and 5, side views of two different mobiledevices 400 and 500 are illustrated and show exemplary configurationsaccording to embodiments of the present invention. In FIG. 4, mobiledevice 400 is illustrated as having a first heat detector 414 positionednear the surface of a first flat surface 410 and a second heat detector416 positioned near the surface of a second flat surface 412. This way,heat detector 414 can obtain a measurement of temperature associatedwith a location near the first surface 410 and heat detector 416 canobtain a measurement of temperature associated with a location near thesecond surface 412. Useful presence information can be derived from thedifference between the two temperature measurements.

Another exemplary embodiment is illustrated in FIG. 5. FIG. 5 depicts amobile device 500 having three heat detectors 514, 516, and 518positioned near the surface of a first flat surface 510 and three heatdetectors 520, 522, and 524 positioned near the surface of the oppositeflat surface 512. As with the exemplary configuration illustrated inFIG. 4, useful presence information can be obtained from the differencebetween two or more temperature measurements as collected by the heatdetectors 514, 516, 518, 520, 522, and 524 of FIG. 5. According toembodiments, temperature differences can be calculated between any twoheat detectors 514, 516, 518, 520, 522, and 524, including between twoheat detectors positioned near the same surface of the device 500. Thislatter example can be useful in a case such as, for example, where auser is engaged in a phone call using the mobile device 500, where theuser's head is contacting one surface 510 of the device 500 and theuser's hand is contacting the opposite side 512 of the device 500.Although there is likely, in that situation, to be heat transferred toboth surfaces 510 and 512 of the device 500, different locations nearthe same surface 510 or 512 of the device 500 may have varying degreesof contact with the user's body, in which case varying levels of heatmay be transferred to the surface 510 or 512 of the device 500, causingmeasurable temperature differences between the two locations. Theembodiments illustrated in FIGS. 4 and 5 are not intended to limit thepossible configurations that can be implemented according to embodimentsof the present invention. It will be appreciated by those skilled in theart that there are numerous such configurations that could beimplemented, and all of these configurations are considered to be withinthe ambit of the present invention.

Returning now to FIG. 3, mobile device 310 includes heat analysiscomponent 318 that receives temperature data from heat detectors 314 and316. Heat analysis component 318 calculates a difference betweentemperature measurements from heat detectors 314 and 316. According tovarious embodiments, heat detectors 314 and 316 can provide temperaturemeasurements to heat analysis component 318 in a nearly continuousfashion, i.e. repeated measurements in rapid succession. In otherembodiments, heat detectors 314 and 316 provide temperature measurementsto heat analysis component 318 periodically, and in still furtherembodiments, heat detectors 314 and 316 provide temperature measurementsto heat analysis component 318 upon receiving a request, instruction, orcommand to do so. The request, instruction, or command can be receivedfrom heat analysis component 318, presence analysis component 326,presence client 328 or some other component not illustrated in FIG. 3.

Heat analysis component 318 can store temperature difference data in astorage module 320 for some predetermined amount of time. For example,in some embodiments, heat analysis component 318 can be configured tocalculate a series of temperature differences, storing each of, orselected ones of them, in storage module 320. In addition to determiningtemperature differences, heat analysis component can perform other typesof analysis upon heat information (e.g., temperature data) received fromheat detectors 314 and 316. For example, in some embodiments, heatanalysis component 318 generates models that represent temperaturedifferences as a function of time. It will be appreciated by those ofordinary skill in the art that various types of mathematical models maybe used to describe heat information such as, for example, probabilitydistributions, linear time series estimations, interpolations, and thelike.

In some cases, mathematical models that represent heat informationtrends or behaviors over time, either short or long periods of time, canbe useful in isolating useful data from the heat information. As usedherein, a temperature difference having a component characteristic thatsuggests that the temperature difference is caused by something otherthan close proximity of a human being to mobile device 310 is referredto as a background profile. For instance, batteries of the type oftenused in mobile devices typically radiate energy in the form of heat. Insome embodiments, the heat radiating from the battery may not bedirected away from one or more of the heat detectors 314 and 316, andtherefore could generate a background profile that results in falsepresence information that indicates a human profile when a human profileshould not be indicated. Accordingly, heat analysis component 318 canisolate the components of the heat information received from heatdetectors 314 and 316 that corresponds to the heat from the battery, andforward the remaining components of the heat information to presenceanalysis component 326. Generating models representing heat informationcan be useful in this way by allowing for the use of known techniques ofisolating components of that type of information.

For example, in an embodiment, heat analysis component 318 can beinformed of a heat signature that corresponds to the battery. Often, abattery's heat signature can be known or predicted based on dataobtained from the battery's manufacturer. This information can beprogrammed into heat analysis component 318 so that it can be simplysubtracted or otherwise removed from the heat information. In otherembodiments, heat analysis component 318 can learn a heat signature, orhow to predict or estimate, a heat signature corresponding to thebattery. In still further embodiments, heat analysis component 318 canidentify patterns in the heat information, and by subjecting thepatterns to a set of rules or heuristics, can determine components ofthe heat information that are most likely attributable to the battery.As with the battery, similar considerations associated with othersources of heat can be addressed by heat analysis component 318. Thus,for example, if a mobile device is left outside in the sun, theconsequential heat information can be appropriately interpreted toremove, or at least mitigate, the influence of the data generated by thesun.

Once heat information is processed by heat analysis component 318, theprocessed heat information, which can be referred to as presenceinformation because it can be used to determine a presence statusassociated with a user of mobile device 310. The presence information isprovided to presence analysis component 326, which references thepresence information, and thus, the heat information when determiningwhether a human profile is indicated. A human profile can be indicatedwhen a characterization of the heat information suggests that a humanbeing is in close proximity to mobile device 310, and thus, that thatthe user likely is available via mobile device 310. Because othersources of heat can produce temperature differences measurable by theheat detectors 314 and 316, a predetermined range corresponding to themagnitudes of temperature differences that are likely to be generated bybody heat from a human being may be utilized. Put another way, a humanprofile may be indicated if a temperature difference has a magnitudethat is greater than a first threshold but lower than a secondthreshold. Again, the predetermined range can be programmed intopresence analysis module 318 or, in other embodiments, can beestablished during a training period.

According to some embodiments of the present invention, presenceanalysis component 326 can receive models or other characterizations ofheat information and can perform analysis thereon to determine whether ahuman profile is indicated. In one embodiment, for example, presenceanalysis component 326 is adapted to analyze heat information accordingto statistical techniques. For example, determining whether a humanprofile is indicated by heat information can include identifying aconfidence interval surrounding a proposition that close proximity of ahuman being would generate a particular set of temperature data.Additional variables can be factored into the analysis as well, such asthe probability that a user who is in close proximity to the user'smobile device is actually available via the mobile device, particularbehavioral patterns associated with the user, the status of otherfunctions associated with mobile device, motion information, and thelike.

With continued reference to FIG. 3, mobile device 310 also includes anaccelerometer 322. In various embodiments, mobile device 310 can includeseveral accelerometers 322. In some embodiments, mobile device 310includes only one accelerometer 322. Turning briefly to FIGS. 4 and 5,each of mobile devices 400 and 500 includes an accelerometer 418 and526, respectively. The positioning of accelerometer 418 or 526 withinthe mobile device 400 is not generally limited to any particularconfiguration, and any such configuration is considered to be within theambit of the present invention.

Returning again to FIG. 3, accelerometer 322 collects motioninformation. In embodiments, motion information includes measurements ofacceleration associated with mobile device 310. In other embodiments,motion information comprises a characterization of a set of measurementsof acceleration such as a model, an interpolation, and the like. As withheat information, motion information can be collected periodically,continuously, or in response to a request, instruction, or command.Additionally, as with heat information, other sources of motion cancontribute to noisy motion information that yields inaccurate presencedeterminations, and therefore techniques such as those discussed abovecan be used to separate environmental motion information from motioninformation that is likely to have been generated by a human being.

In an embodiment, noise reduction techniques such as those used toeliminate white noise from audio or video signals can be used to filterenvironmental accelerations. Additionally, other techniques such asstatistical modeling, principal component analysis, feature extraction,and the like can be used to isolate useful motion information. Accordingto one embodiment, for example, a baseline characterization or componentof motion information can be determined for a given amount of time(e.g., 10 seconds). The motion information can be analyzed to detectdeviations from the baseline. In some embodiments, threshold deviationvalues can be established and, therefore, deviations that exceed athreshold or fall within a particular threshold range may indicate ahuman profile. While processing motion information from accelerometer322, motion analysis component 324 can store motion information and/orprocessed motion information in storage module 325.

To maximize efficient use of storage space and time, in one embodiment,motion analysis component 324 may perform the baseline-deviationtechniques, modeling techniques, or other techniques described above forpredetermined periods of time such as, for example 10 or 15 seconds.When the predetermined time period expires, motion analysis component324 can delete old data to free storage space for a new set of data. Inother embodiments, motion analysis component 324 can generate arepeatedly updating characterization of motion information, and infurther embodiments, motion analysis component 324 can generatecharacterizations of motion information that correspond with a singleinstance of temperature measurements. Many other techniques known tothose of ordinary skill in the art can be utilized to process motioninformation, and all of those are considered to be within the ambit ofthe present invention.

Presence analysis component 326 determines whether a human profile isindicated. The output of this determination can be binary, in that itmay be characterized by either a “yes” or a “no.” In other embodiments,the output of the determination can include a confidence interval,mathematical model, or some other characterization of the processed heatand motion information. In all of these cases, the output can bereferred to as presence information, which is provided to variousclients 328 and 330 on mobile device 310. In some instances, presenceanalysis component 326 actually determines presence status, and providesthat presence status information to various clients 328 and 330 onmobile device 310. Some clients on mobile device 310 can use presencestatus information in various ways such as, for example, by invokingsome functionality or application based on presence status, by allowingfor some types of operations based on presence status, and the like. Onesuch client is a presence client 328, which is capable of interactingwith presence server 312.

Presence client 328 communicates presence information or presence statusinformation to presence server 312. In an embodiment, presence server312 aggregates information received from presence client 328 withinformation received from other sources to generate presence statusinformation. Presence information communicated by presence client 328can be presence status information, and in some embodiments, thatpresence status information may be augmented, modified, or updated bypresence server 312, which may reference presence information availablefrom additional sources such as, for example, information source 224illustrated in FIG. 2. According to various embodiments of the presentinvention, other clients 330 can also utilize or reference presenceinformation or presence status information for triggering variousprocesses, for identifying environmental characteristics, and the like.

To recapitulate, we have described systems and methods for providingpresence information associated with a user of a mobile communicationsdevice using heat and motion data captured by sensors positioned withinthe mobile communications device. Turning now to FIG. 6, a flow diagramis shown that illustrates an exemplary method of determining presenceinformation using heat data captured by sensors positioned within amobile communications device. At a first illustrative step 610, heatinformation collected by a heat detector or heat detectors positionedwithin the mobile device is referenced. Referencing heat information caninclude receiving temperature difference data from a heat analysiscomponent that analyzes temperature measurements collected by the heatdetector(s). In other embodiments, referencing heat information includesreceiving temperature measurements from the heat detector(s). In stillfurther embodiments, referencing heat information can include receivingan indication of the probability that a given set of temperaturemeasurements corresponds to a human profile.

At step 612, motion information is referenced. Motion information caninclude, for example, a series of accelerations associated with themobile device. As shown in FIG. 6, the heat and motion information areanalyzed, at step 614, to determine whether a human profile isindicated. At a final illustrative step, step 618, presence informationis provided to a presence server, mobile device, device client, or otherentity.

Turning to FIG. 7, another flow chart is shown that illustrates anexemplary method of determining presence information using heatinformation captured by sensors positioned within a mobilecommunications device. At step 710, the exemplary method includesdetermining a first temperature associated with a first location near asurface of the mobile device. In embodiments, the first location can beanywhere associated with a larger flat side (e.g., face) of the mobiledevice. The exemplary method further includes determining a secondtemperature associated with a second location near the surface of themobile device, as indicated at step 712. In an embodiment, the secondlocation can correspond to an opposite side of the mobile device fromthe first location. In another embodiment, the second location cansimply be a different location corresponding to the first surface. Atstep 714, the difference between the first and second temperatures iscalculated, and at a final illustrative step, step 716, a determinationis made whether the temperature difference corresponds to a backgroundprofile or a human profile.

Referring to FIG. 8, a flow diagram is shown that illustrates anexemplary method of determining presence information using motion datacaptured by a sensor positioned within a mobile communications device.At a first illustrative step 810, a first series of accelerationsassociated with the mobile device is determined. A first model is fit tothe first series of accelerations, as shown at step 812. Next, at step814, a determination is made whether the first model includes a baselinecomponent. Having identified a baseline component, a determination isthen made whether the first set of accelerations includes a deviationfrom the baseline component. As shown at step 818 in FIG. 8, the firstseries of accelerations is discarded and, at step 820, a second seriesof accelerations is determined. A second model is fit to the secondseries of accelerations, as indicated by step 822, and at a finalillustrative step, step 824, the first and second models are compared todetermine whether any information exists that corresponds to a humanprofile.

Turning to FIG. 9, a flow diagram is shown that illustrates an exemplarymethod of determining presence information using heat and motion datacaptured by sensors positioned within a mobile communications device. Ata first illustrative step 910, heat information is collected during afirst period of time and at step 912, motion information is alsocollected during the first period of time. At step 914, user interactioninformation is collected during the first period of time. Userinteraction information, as used herein, is information generated as aresult of a user's direct interaction with the mobile device. This typeof information is useful to validate estimated or predicted informationbased on the models that are fit to the data.

At step 916, the heat information and motion information is incorporatedinto a statistical model. Heat information and motion information isthen collected during a second period of time, as shown at step 918. Atstep 920, the statistical model is referenced to determine thatprobability that the user is available via the mobile device. At step922, the probability is compared against a predetermined threshold todetermine whether the threshold is exceeded. At a final illustrativestep, step 924, presence information is provided based on whether theprobability threshold was exceeded. As discussed above, presenceinformation can be provided to various types of clients on the mobiledevice, to a presence server or other network element, or to anothermobile device. It should be understood that presence information can beused in many different ways and that all of these are considered to bewithin the scope of the present disclosure.

Many different arrangements of the various components depicted, as wellas components not shown, are possible without departing from the spiritand scope of the present invention. Embodiments of the present inventionhave been described with the intent to be illustrative rather thanrestrictive. Alternative embodiments will become apparent to thoseskilled in the art that do not depart from its scope. A skilled artisanmay develop alternative means of implementing the aforementionedimprovements without departing from the scope of the present invention.

It will be understood that certain features and subcombinations are ofutility and may be employed without reference to other features andsubcombinations and are contemplated within the scope of the claims. Forinstance, in some embodiments, a mobile device may include heatdetectors but not an accelerometer and in other embodiments, a mobiledevice may include accelerometers but not heat detectors. In stillfurther embodiments, a mobile device can include other types of sensorsor modules that process data to determine presence information.Additionally, in some embodiments, heat analysis and motion analysis canbe performed within a single module, by a server on a network, or thelike.

Further, not all steps listed in the various figures need be carried outin the specific order described. For instance, motion and heat analysismay be performed simultaneously or in any order desired. In someembodiments, presence information may be provided in iterations betweentypes of analysis. In further embodiments, raw data collected from heatdetectors and accelerometers can be streamed to a server or other modulefor analysis while other exemplary steps are being performed.

The invention claimed is:
 1. A presence server for providing presenceinformation associated with a user of a mobile communications device,the presence server comprising: one or more processing devices; one ormore computer-readable media, having embodied thereon computer-useableinstructions that, when executed, cause the presence server to: receiveheat information associated with a first mobile device; receive motioninformation associated with the first mobile device; analyze the heatand motion information to determine whether a human profile isindicated, wherein the human profile comprises a characterization ofheat and motion information that indicates that the user is availablevia the first mobile device; and store presence status information basedon whether a human profile is indicated.
 2. The presence server of claim1, wherein the presence server is further configured to communicate thepresence status information to a second mobile device.
 3. The presenceserver of claim 1, wherein the heat information comprises a temperaturedifference value, wherein a temperature difference value comprises adifference between at least two temperatures.
 4. The presence server ofclaim 3, wherein the presence server is further configured to: determinea first temperature associated with a first location near a surface ofthe first mobile communications device; determine a second temperatureassociated with a second location near a surface of the first mobilecommunications device; and calculate the temperature difference betweenthe first and second temperatures.
 5. The presence server of claim 4,wherein the presence server is further configured to determine whetherthe temperature difference corresponds to a background profile, whereinthe background profile comprises a particular temperature differencehaving a component characteristic that suggests whether the temperaturedifference is caused by something other than close proximity of a humanbeing to the first mobile communications device.
 6. The presence serverof claim 5, wherein the background profile is associated with atemperature difference component having a characteristic that suggeststhat the cause of the temperature difference is a battery disposedwithin the first mobile device.
 7. The presence server of claim 1,wherein the presence server is further configured to: determine a firstseries of accelerations associated with the first mobile device; and fita first model to the first series of accelerations.
 8. The presenceserver of claim 7, wherein the presence server is further configured to:discard the first series of accelerations, wherein the first model istemporarily maintained for comparing with a second mathematical model;determine a second series of accelerations associated with the firstmobile device; fit a second model to the second series of accelerations;compare the first model with the second model to identify informationabout both models that corresponds to a human profile; and discard thefirst model.
 9. One or more computer-readable media havingcomputer-executable instructions embodied thereon for performing amethod of providing presence information associated with a user of afirst mobile communications device, the method comprising: at a networkelement, receiving a first temperature associated with a first locationnear an outside surface of the first mobile communications device; atthe network element, receiving a second temperature associated with asecond location near an outside surface of the first mobilecommunications device; calculating a difference between the firsttemperature and the second temperature; comparing the difference to apredetermined range that corresponds to a human profile, wherein thehuman profile comprises a range of temperature differences that suggestthat a human being is in close proximity to the first mobilecommunications device; and when the difference is within thepredetermined range, storing presence status information that indicatesthat the user is available via the first mobile communications device.10. The media of claim 9, the method further comprising communicatingthe presence status information to a second mobile communicationsdevice.
 11. The media of claim 10, the method further comprisingreferencing motion information associated with the first mobilecommunications device.
 12. The media of claim 11, the method furthercomprising determining whether the motion information corresponds to ahuman profile.
 13. The media of claim 12, the method further comprisingreferencing one or more additional sources of presence information. 14.A presence server that provides presence information associated with auser of a mobile communications device (“mobile device”), wherein thepresence server is configured to: receive acceleration data associatedwith the mobile device; analyze the acceleration data to determinewhether a human profile is indicated, wherein the human profilecomprises a characterization of motion information that indicates thatthe user is available via the mobile device, and wherein the presenceserver is configured to (1) fit a model to at least a portion of theacceleration data, (2) determine whether the model includes a baselinecomponent, and (3) determine whether the first set of accelerationsincludes a deviation from the baseline component; and store presencestatus information that is based at least on whether the human profileis indicated.
 15. The presence server of claim 14, wherein the presenceserver is further configured to communicate presence status informationto a second mobile communications device.
 16. The presence server ofclaim 14, wherein the acceleration is analyzed to produce motioninformation.
 17. The presence server of claim 14, wherein adetermination of whether a human profile is indicated includes adetermination of whether the deviation from the baseline componentexceeds a threshold or falls within a threshold range.
 18. The presenceserver of claim 14, wherein the presence server is further configured toreceive user interaction information from a period of time when theacceleration data was collected, wherein the user interaction dataincludes information generated as a result of the user's directinteraction with the mobile device.
 19. The presence server of claim 18,wherein the presence server is further configured to utilize the userinteraction data to validate estimated or predicted information based onthe model that is fit to at least the portion of the acceleration data.20. The presence server of claim 18, wherein fitting the model to atleast the portion of the acceleration data includes utilizing the userinteraction data to validate estimated or predicted information based onthe model that is fit to at least the portion of the acceleration data.